1 |
|
有后门函数,且堆溢出
unlink函数模拟了 unlink的过程,可以结合堆溢出实现任意地址写。
一开始的想法是将 shell 函数地址写到栈的返回地址上去,不过直接写会破坏 shell 函数,且text段不可写,会crash
FD->bk=BK; BK->fd=FD;
会往shell+4 写入数据 ,导致crash
直接写不行,那就用栈迁移,调整好参数位置就行了
1 | #coding:utf-8 |
1 | #include <stdio.h> |
有后门函数,且堆溢出
unlink函数模拟了 unlink的过程,可以结合堆溢出实现任意地址写。
一开始的想法是将 shell 函数地址写到栈的返回地址上去,不过直接写会破坏 shell 函数,且text段不可写,会crash
FD->bk=BK; BK->fd=FD;
会往shell+4 写入数据 ,导致crash
直接写不行,那就用栈迁移,调整好参数位置就行了
1 | #coding:utf-8 |